package com.example.easyexcel.write.entity;

import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.converters.string.StringImageConverter;
import com.alibaba.excel.metadata.data.WriteCellData;
import com.example.easyexcel.write.converter.CustomStringStringConverter;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;

import java.io.File;
import java.io.InputStream;
import java.net.URL;

/**
 * 图片导出类
 *
 * @author Jiaju Zhuang
 */
@Data
@Getter
@Setter
@EqualsAndHashCode
@ContentRowHeight(100)
@ColumnWidth(100/8)
public class ImageDemoData {
    // 使用抽象文件表示一个图片
    @ExcelProperty(value = "文件方式")
    private File file;

    // 使用输入流表示一个图片
    @ExcelProperty(value = "输入流方式")
    private InputStream inputStream;

    /**
     * 如果string类型，必须指定转换器(StringImageConverter)，string默认转换成string
     */
    @ExcelProperty(converter = StringImageConverter.class)
    private String string;

    // 使用二进制数据表示一个图片
    @ExcelProperty(value = "二进制方式")
    private byte[] byteArray;

    /**
     * 根据url表示图片
     *
     * @since 2.1.1
     */
    @ExcelProperty(value = "url方式")
    private URL url;

    /**
     * 根据文件导出 并设置导出的位置。
     *
     * @since 3.0.0-beta1
     */
    private WriteCellData<Void> writeCellDataFile;
}
